\chapter{Structure de données et allocation mémoire}
	Le stockage des séquences courtes de nucléotides est fait dans une structure C contenant:
	\begin{itemize}
		\item Un flag permettant de marquer une séquence assemblée à une autre. Ceci permet à la fin d'une iteration de retenir les séquences non encore assemblées.
		\item La longueur courante de la séquence de nucléotides.
		\item Un tableau de \emph{CHAR} pour stocker la séquence de nucléotides. Un nucléotide pouvant être une des quatre lettres possibles A, T, C ou G, il peut être codé sur 2 bits. Un char permet donc de stocker 4 nucléotides.
	\end{itemize}
~~\\
	\indent Des macros permettent d'accéder et de manipuler ces nucléotides. Egalement une classe permet de convertir les nucléotides ainsi codés en caractères ASCII et vice versa.

	Le programme utilise des listes de cette structure réalisées dans des tableaux. A chaque itération il y a une liste d'entrée contenant les séquences à assembler et une liste de sortie pour y ranger les séquences assemblées.

	Etant donné que les séquences en doublons sont supprimées au début de l'assemblage, chaque séquence, si assemblée à d'autres, ne peut générée que quatres séquences en sortie. Il faut cinq séquences d'entrée pour quatre de sortie, la liste de sortie n'a donc pas besoin d'une capacité mémoire plus grande que celle d'entrée.

	A la fin de chaque itération les éléments non assemblés de la liste d'entrée sont copiés dans la liste de sortie afin de libérer la mémoire de la liste d'entrée. La liste de sortie devient liste d'entrée et une nouvelle liste de sortie est allouée.


\chapter{Traduction de couleurs en nucléotides}
	Le code Pascal fourni traduit une séquence de couleurs issue d'un séquenceur en une séquence de nucléotides. Le codage de couleur suit l'espace de couleur nommé \emph{SOLiD} où chaque couleur représente une paire de nucléotides. Il y a chaque fois quatre décodages possibles, le décodage dépend donc d'un nucléotide de référence, ici "T". Une explication détaillée du principe de séquençage et du système \emph{SOLiD} est donnée en annexe.

	La dernière étape de conversion du programme Pascal d'un chiffre compris entre 0 et 3 représentant le nucléotide en lettre n'est pas réalisée dans notre code, car l'information de nucléotide est directement stockée sous ce format.



